﻿#region GNU GPL Version 3 License

/// Copyright 2013 Shailesh Lolam
/// 
/// This file Deployment.cs is part of AzEzAuto.
/// 
/// AzEzAuto is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
/// 
/// AzEzAuto is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
/// 
/// You should have received a copy of the GNU General Public License along with AzEzAuto. If not, see http://www.gnu.org/licenses/.
/// 
/// History:
/// ______________________________________________________________
/// Created         04-2013             Shailesh Lolam

#endregion
      
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace AzEzAuto.Entities.Hosted
{
    [XmlRoot(Namespace = "http://schemas.microsoft.com/windowsazure")]
    public class Deployment
    {
        public string Name;
        public DeploymentSlot DeploymentSlot;
        public string PrivateID;
        public string Status;
        public string Label;
        public string Url;
        public string Configuration;
        public UpgradeStatus UpgradeStatus;

        private List<RoleInstance> _roleInsanceList = new List<RoleInstance>();

        public List<RoleInstance> RoleInstanceList { get { return _roleInsanceList; } }
        public int UpgradeDomainCount;

        private List<Role> _roleList = new List<Role>();

        public List<Role> RoleList { get { return _roleList; } }
        public string SdkVersion;

        private List<InputEndpoint> _inputEndPointList = new List<InputEndpoint>();

        public List<InputEndpoint> InputEndpointList { get { return _inputEndPointList; } }

        public string Locked;
        public string RollebackAllowed;

    }

    public class UpgradeStatus
    {
        public string UpgradeType;
        public string CurrentUpgradeDomainState;
        public string CurrentUpgradeDomain;
    }

    
}
